1. Field of the Invention
This invention relates generally to storage area networks, and more particularly to systems for configuring and managing storage devices connected over a network.
2. Description of the Related Art
As the need for reliable storage solutions increase across a company network, computer network and storage experts have been designing network solutions that incorporate one or more redundant array of inexpensive disks (RAIDs). RAID is a storage technology wherein a collection of multiple disk drives is organized into a disk array managed by a common array controller. The array controller presents the array to the user as one or more virtual disks. Disk arrays are the framework to which RAID functionality is added in functional levels to produce cost-effective, highly available, high-performance disk systems.
Although RAID provides the reliability network administrators are looking for, setting up a disk array to work in accordance with a given RAID level is not always straight forward for a network or computer administrator having a typical level of RAID experience. For instance, RAID level 0 is a performance-oriented striped data mapping technique. Uniformly sized blocks of storage are assigned in a regular sequence to all of the disks in the array. RAID 0 provides high I/O performance at low cost. Reliability of a RAID 0 system is less than that of a single disk drive because failure of any one of the drives in the array can result in a loss of data.
RAID level 1, also called mirroring, provides simplicity and a high level of data availability. A mirrored array includes two or more disks wherein each disk contains an identical image of the data. A RAID level 1 array may use parallel access for high data transfer rates when reading. RAID 1 provides good data reliability and improves performance for read-intensive applications, but at a relatively high cost.
RAID level 2 is a parallel mapping and protection technique that employs error correction codes (ECC) as a correction scheme, but is considered unnecessary because off-the-shelf drives come with ECC data protection. For this reason, RAID 2 has no current practical use, and the same performance can be achieved by RAID 3 at a lower cost. As a result, RAID 2 is rarely used.
RAID level 3 adds redundant information in the form of parity data to a parallel accessed striped array, permitting regeneration and rebuilding of lost data in the event of a single-disk failure. One stripe unit of parity protects corresponding stripe units of data on the remaining disks. RAID 3 provides high data transfer rates and high data availability. Moreover, the cost of RAID 3 is lower than the cost of mirroring since there is less redundancy in the stored data.
RAID level 4 uses parity concentrated on a single disk to allow error correction in the event of a single drive failure (as in RAID 3). Unlike RAID 3, however, member disks in a RAID 4 array are independently accessible. Thus RAID 4 is more suited to transaction processing environments involving short file transfers. RAID 4 and RAID 3 both have a write bottleneck associated with the parity disk, because every write operation modifies the parity disk.
In RAID 5, parity data is distributed across some or all of the member disks in the array. Thus, the RAID 5 architecture achieves performance by striping data blocks among N disks, and achieves fault-tolerance by using 1/N of its storage for parity blocks, calculated by taking the exclusive-or (XOR) results of all data blocks in the parity disks row. The write bottleneck is reduced because parity write operations are distributed across multiple disks.
The RAID 6 architecture is similar to RAID 5, but RAID 6 can overcome the failure of any two disks by using an additional parity block for each row (for a storage loss of 2/N). The first parity block (P) is calculated with XOR of the data blocks. The second parity block (Q) employs Reed-Solomon codes.
As can be appreciated, even the most knowledgeable computer administrators are required to have a good working understanding of RAID and the ability to select the correct hardware to make the storage solution work. To facilitate this, some companies provide preconfigured RAID arrays, which can be connected to a computer system, such as, a server computer or a cluster. Although the these RAID solutions provide good data storage reliability, a computer technician/administrator is required to initially configure the RAID solution on a system and then continually monitor its health over its lifetime.
For instance, once the RAID solution is correctly configured, the computer technician/administrator should plan on making trips to the server so that the health of each of the individual disks in the RAID solution can be monitored. This is generally required because RAID solutions, by their very nature, will not completely fail when only one of the disks stop working. However, if more than one disk fails, the RAID solution may be unable to guard against data loss. Although this might not appear to be a big task, as the company enterprise networks continues to expand, there may be a need for multiple RAID solutions at each server computer (i.e., server or cluster). As a result, there will be an ever growing need to configure RAID solutions, monitor the health of each RAID solution and repair and/or rebuild RAID solutions as the storage needs of the company grow and change.
In view of the foregoing, there is a need for an easy-to-use system for configuring, managing, and monitoring RAID storage systems over a network.